[iOS][Android] バックグラウンドタスク一覧表示時のスナップショットをガードする方法
スナップショットを加工する
iOS や Android で現在実行中のタスク一覧を表示した時のスナップショットを加工する方法を紹介します。
セキュリティレベルの高い項目を表示するような画面(パスワード入力画面など)では、この処理を施すというのもアリだと思います。
iOS
AppDelegate クラスでバックグラウンドに回った時とフォアグラウンドに戻った時に、それぞれガード用のビューコントローラを表示/非表示します。
@interface AppDelegate () @property (nonatomic) UIViewController *snapshotViewController; @end
- (void)applicationDidEnterBackground:(UIApplication *)application { UIViewController *blankViewController = [UIViewController new]; blankViewController.view.backgroundColor = [UIColor blackColor]; UIViewController *controller = self.window.rootViewController; while (controller.presentedViewController) { controller = controller.presentedViewController; } [controller presentViewController:blankViewController animated:NO completion:nil]; self.snapshotViewController = controller; }
- (void)applicationWillEnterForeground:(UIApplication *)application { [self.snapshotViewController dismissViewControllerAnimated:NO completion:nil]; self.snapshotViewController = nil; }
こちら に Apple 公式のサンプルがありますが、このコードだとモーダルなビューが表示されている時には意図通りに動かないため、多少改良しています。
実行結果
ちなみに Apple の iTunes Connect アプリ ではブラーがかかるように処理されています。
Android
Android では適用したいアクティビティにて以下のコードを組み込むだけです。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
ただし FLAG_SECURE
を設定すると、そのアクティビティにおいて スクリーンキャプチャ が実行できなくなるので気をつけてください。
実行結果
リンク
ミレニアム・ファルコン製作日記 #15
15 号 表紙
パーツ
成果
今回の作業は以下の 3 つでした。
- 半径方向肋材を組み立てる
- フレームを組み立てる
- 外殻プレートの取り付け
これまでに揃った下部フレームを、12 号で組み立てた枠組みに加えました。
これで船体下部の 4 分の 1 が完成しました。
4 分の 1 でこの大きさ、デカイ!
スター・ウォーズ/フォースの覚醒 MovieNEX
いよいよ自宅でも「スター・ウォーズ/フォースの覚醒」を鑑賞できるようになりました!
公式のディズニーストア で注文すればフライングゲットできます。
一刻も早く観たい方はこちらで注文されてはいかがでしょうか?
私はもうボーナス・コンテンツまで鑑賞済みです。
メイキングはイイネ。
それではまた次回。
May the Force be with you!